Skip to content

与工厂模式类似,但是返回的对象具有额外的方法。

寄生构造函数模式 (推荐 Es6,过时禁止使用的)

js
function Person(name, age) {
  let obj = {};
  obj.name = name;
  obj.age = age;
  obj.sayHello = function () {
    console.log(
      "Hello, my name is " + this.name + " and I am " + this.age + " years old."
    );
  };
  return obj;
}

let person1 = new Person("John", 30);
let person2 = new Person("Alice", 25);

person1.sayHello(); // 输出:Hello, my name is John and I am 30 years old.
person2.sayHello(); // 输出:Hello, my name is Alice and I am 25 years old.

缺点

  • 新创建的对象使用的是闭包内部定义的方法,这使得继承和复用变得困难。
  • 使用寄生构造函数模式的代码结构可能会比较复杂,难以理解。